/*
 * 版权所有 2009-2022山东新北洋信息技术股份有限公司 保留所有权利。
 */
package online.xuping.thousandsOfWorlds.common.importexcel;

import online.xuping.thousandsOfWorlds.common.importexcel.domain.ImportResVO;
import online.xuping.thousandsOfWorlds.common.importexcel.strategy.ExcelImportContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * excel导入服务
 *
 * @author dongyinggang
 * @date 2022/8/17 17:31
 * @copyright 2022 山东新北洋信息技术股份有限公司. All rights reserved
 */
@Service
public class ExcelImportService {

    @Autowired
    private ExcelImportContext excelImportContext;

    /**
     * excel文件解析入口
     *
     * @param file : excel文件
     * @return {@link ImportResVO }
     * @author dongyinggang
     * @date 2022/8/18 14:58
     **/
    public void importExcel(MultipartFile file, String serviceName) throws IOException {
        //策略，通过服务名直接将错误信息导入
        excelImportContext.getStrategy(serviceName).importExcel(file);
    }

    /**
     * 获取错误列表
     *
     * @param serviceName : 服务名
     * @return {@link List } 返回错误列表
     * @author yujian
     * @date 2022/8/31 10:48
     **/
    public List getErrorList(String serviceName) throws IOException {
        //策略，通过服务名直接将错误信息导入
        return excelImportContext.getStrategy(serviceName).getErrorList();
    }


    /**
     * 返回正确的列表
     *
     * @param serviceName : 服务名
     * @return {@link List } 返回正确列表信息
     * @author yujian
     * @date 2022/8/31 10:48
     **/

    public List getCorrectList(String serviceName) throws IOException {
        //策略，通过服务名直接将错误信息导入
        return excelImportContext.getStrategy(serviceName).getCorrectList();
    }


}
